home *** CD-ROM | disk | FTP | other *** search
/ PC Gamer (Italian) 30 / PC Gamer IT CD 30 1-2.iso / MOTS / GAMEDATA / RESOURCE / JKMRES.GOO / cog_actor_ic.cog < prev    next >
Text File  |  1998-02-25  |  3KB  |  114 lines

  1. # Jedi Knight Cog Script
  2. #
  3. # ACTOR_IC.COG
  4. #
  5. #
  6. # Actor COG for Commandos with Rifles
  7. # Creates powerup upon death
  8. #
  9. # 7/28/97 [CR] Doubled saber damage for single player gameplay reasons
  10. #
  11. # [CR]
  12. #
  13. # (C) 1997 LucasArts Entertainment Co. All Rights Reserved
  14. #
  15. # ========================================================================================
  16.  
  17. symbols
  18.  
  19. message          killed
  20. message          skill
  21. message          damaged
  22.  
  23. template         powerup=+Dstrifle       local
  24. thing            newThing                local
  25. thing            victim                  local
  26. int              damage                  local
  27. int              bin                     local
  28. int              senderref=-1            local
  29. ai               flee_ai=noweapon.ai     local
  30.  
  31. vector        currentpos                                local
  32.  
  33. end
  34.  
  35. # ========================================================================================
  36.  
  37. code
  38.  
  39. damaged:
  40.    damage = GetParam(0);
  41.    if(GetParam(1) == 16)
  42.    {
  43.       damage = (damage * 2.0);
  44.    }
  45.    ReturnEx(damage);
  46.    return;
  47.  
  48. # ........................................................................................
  49.  
  50. killed:
  51.    victim = GetSenderRef();
  52.    if (GetActorWeapon( victim, 1 ) != -1)
  53.    {
  54.       AmputateJoint( victim, 3 );
  55.       newThing = CreateThing(powerup, victim);
  56.       SetLifeleft(newThing, 200.0);
  57.    }
  58.    return;
  59.  
  60. # ........................................................................................
  61.  
  62. skill:
  63.    bin = GetParam(0);
  64.    if (bin == 24)       // Force Pull
  65.    {
  66.       // he's a fighter, not a fleer... -srs
  67.  
  68.       senderref = GetSenderRef();
  69.             // If he hasn't been pulled yet...
  70.         if (GetActorWeapon (senderref, 1) != -1)
  71.         {
  72.             SetActorWeapon(senderref, 1, -1);
  73.  
  74.             newThing = CreateThing(powerup, GetSenderRef());
  75.             SetLifeleft(newThing, 30.0);
  76.  
  77.             AISetClass (senderref, flee_ai);
  78.             AISetMode(senderref, 0x4);
  79.  
  80.             ReturnEx(newThing);
  81.         }
  82.         else
  83.         {
  84.                 // Give the actor a shove towards the player.
  85.             currentpos = VectorSub(GetThingPos(GetLocalPlayerThing(), senderref));
  86.             currentpos = VectorScale(VectorNorm(currentPos), 250);
  87.             ApplyForce(senderref, currentpos);
  88.  
  89.             ReturnEx(-1);
  90.         }
  91.  
  92.       //AIFlee(senderref, GetLocalPlayerThing());
  93.  
  94.       Return;
  95.    }
  96.    else
  97.    if (bin == 31)       // Force Grip
  98.    {
  99.       ReturnEx(10);     // return base damage that is taken by this actor.
  100.       return;
  101.    }
  102.    else
  103.    if (bin == 34)       // Deadly Sight
  104.    {
  105.       ReturnEx(5);      // return base damage that is taken by this actor.
  106.       return;
  107.    }
  108.  
  109.    ReturnEx(-1);
  110.    return;
  111.  
  112. end
  113.  
  114.